Compare commits

..

9 Commits

Author SHA1 Message Date
f79ccb49d0 Merge pull request 'fix: corrected build' (#9) from ci into main
Reviewed-on: #9
2026-06-15 05:27:54 +00:00
e8c31e29c1 fix: corrected build
All checks were successful
Dependabot Auto-Merge / dependabot (pull_request) Has been skipped
Dependabot Auto-Merge / devopsbot (pull_request) Has been skipped
Dependabot Auto-Merge / rennovatebot (pull_request) Has been skipped
COMMIT LINT / commitlint (pull_request) Successful in 33s
Unit Tests / unittest (pull_request) Successful in 44s
2026-06-15 05:26:53 +00:00
4661571b06 Merge pull request 'feat: adding in repository location so we dont lose it' (#8) from ci into main
Reviewed-on: #8
2026-06-14 19:33:37 +00:00
58800a5443 feat: adding in repository location so we dont lose it
All checks were successful
Dependabot Auto-Merge / dependabot (pull_request) Has been skipped
Dependabot Auto-Merge / devopsbot (pull_request) Has been skipped
Dependabot Auto-Merge / rennovatebot (pull_request) Has been skipped
COMMIT LINT / commitlint (pull_request) Successful in 38s
Unit Tests / unittest (pull_request) Successful in 1m19s
2026-06-14 19:31:41 +00:00
a80af12191 Merge pull request 'feat: do not chunk' (#7) from ci into main
All checks were successful
Markdown Embedder / embed-markdown (push) Successful in 39s
Reviewed-on: #7
2026-06-08 14:23:59 +00:00
3f35b97e15 feat: do not chunk
All checks were successful
Dependabot Auto-Merge / dependabot (pull_request) Has been skipped
Dependabot Auto-Merge / devopsbot (pull_request) Has been skipped
Dependabot Auto-Merge / rennovatebot (pull_request) Has been skipped
COMMIT LINT / commitlint (pull_request) Successful in 24s
Unit Tests / unittest (pull_request) Successful in 1m53s
2026-06-08 14:21:55 +00:00
09aa7f0a2d Merge pull request 'chore: update agent url' (#6) from drgroot-patch-1 into main
Reviewed-on: #6
2026-01-20 13:02:20 +00:00
7e535f73dd chore: update agent url
All checks were successful
Dependabot Auto-Merge / dependabot (pull_request) Has been skipped
Dependabot Auto-Merge / rennovatebot (pull_request) Has been skipped
Dependabot Auto-Merge / devopsbot (pull_request) Has been skipped
Unit Tests / unittest (pull_request) Successful in 9s
COMMIT LINT / commitlint (pull_request) Successful in 1m7s
2026-01-20 13:01:06 +00:00
d7e0180dd1 Merge pull request 'fix: adding in retry logic sleep' (#5) from ci into main
Reviewed-on: #5
2026-01-10 16:07:00 +00:00
8 changed files with 585 additions and 513 deletions

View File

@@ -16,7 +16,7 @@ jobs:
- name: Send task to coding agent
uses: https://git.yusufali.ca/actions/embed-markdown@main
with:
api_url: ${{ secrets.AGENT_API_URL }} # default: https://api.servc.io
api_url: ${{ secrets.AGENT_API_URL }} # default: http://agent-api.k8s.private
api_token: ${{ secrets.AGENT_TOKEN }} # optional, required for authenticated API calls
route: agent-lake # default: agent-lake
debug: false
debug: false

View File

@@ -13,8 +13,13 @@ jobs:
steps:
- uses: actions/checkout@v6
- name: Test Local Action
id: test
uses: ./
- uses: actions/setup-node@v4
with:
debug: 'true'
node-version: 20
cache: npm
- name: Install dependencies
run: npm ci
- name: Run unit tests
run: npm test

View File

@@ -22,9 +22,8 @@ jobs:
- name: Send task to coding agent
uses: https://git.yusufali.ca/actions/embed-markdown@main
with:
api_url: ${{ secrets.AGENT_API_URL }} # default: https://api.servc.io
api_url: ${{ secrets.AGENT_API_URL }} # default: http://agent-api.k8s.private
api_token: ${{ secrets.AGENT_TOKEN }} # optional, required for authenticated API calls
route: agent-lake # default: agent-lake
debug: false
```

View File

@@ -3,7 +3,7 @@ description: 'Sends markdown files to the lake to embed into vector form'
inputs:
api_url:
description: 'api url'
default: 'http://agents-api.servc-agents:3000'
default: 'http://agent-api.k8s.private'
required: false
api_token:
description: 'API token for authentication'

1005
dist/index.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -18,7 +18,7 @@ function getConfig({
env = process.env,
} = {}) {
const apiUrl =
coreModule.getInput("api_url") || "http://agents-api.servc-agents:3000";
coreModule.getInput("api_url") || "http://agent-api.k8s.private";
const apiToken = coreModule.getInput("api_token");
const route = coreModule.getInput("route") || "agent-lake";
const method = coreModule.getInput("method") || "embeddings_insert";
@@ -61,6 +61,16 @@ function sanitizeDocumentId(value) {
return value.replace(/[^A-Za-z0-9.]/g, "");
}
function buildStoreText({ owner, repo, file, content }) {
return [
`repo_name: ${repo}`,
`repo_owner: ${owner}`,
`path: ${file}`,
"",
content,
].join("\n");
}
function buildRequestPayload({
route,
method,
@@ -82,7 +92,7 @@ function buildRequestPayload({
segment_id: segmentId,
document_id: sanitizeDocumentId([owner, repo, file].join(".")),
embed_text: "",
store_text: content,
store_text: buildStoreText({ owner, repo, file, content }),
},
},
};
@@ -165,6 +175,7 @@ async function main({
module.exports = {
buildRequestPayload,
buildStoreText,
getConfig,
listMarkdownFiles,
main,

View File

@@ -1,7 +1,33 @@
const test = require("node:test");
const assert = require("node:assert/strict");
const { buildRequestPayload, main, sanitizeDocumentId } = require("./index");
const {
buildRequestPayload,
buildStoreText,
getConfig,
main,
sanitizeDocumentId,
} = require("./index");
test("getConfig defaults to the ingress API URL", () => {
const config = getConfig({
coreModule: {
getInput() {
return "";
},
},
githubModule: {
context: {
serverUrl: "https://github.example",
},
},
env: {},
});
assert.equal(config.apiUrl, "http://agent-api.k8s.private");
assert.equal(config.route, "agent-lake");
assert.equal(config.method, "embeddings_insert");
});
test("sanitizeDocumentId removes special characters and preserves periods", () => {
assert.equal(
@@ -10,7 +36,22 @@ test("sanitizeDocumentId removes special characters and preserves periods", () =
);
});
test("buildRequestPayload sends the full document in store_text and an empty embed_text", () => {
test("buildStoreText prefixes repository metadata before the markdown content", () => {
const content = "# Title\n\n## First\nalpha\n\n## Second\nbeta\n";
const storeText = buildStoreText({
owner: "acme",
repo: "docs-repo",
file: "guides/setup.md",
content,
});
assert.equal(
storeText,
"repo_name: docs-repo\nrepo_owner: acme\npath: guides/setup.md\n\n# Title\n\n## First\nalpha\n\n## Second\nbeta\n",
);
});
test("buildRequestPayload sends metadata-prefixed store_text and an empty embed_text", () => {
const content = "# Title\n\n## First\nalpha\n\n## Second\nbeta\n";
const payload = buildRequestPayload({
route: "agent-lake",
@@ -23,7 +64,10 @@ test("buildRequestPayload sends the full document in store_text and an empty emb
});
assert.equal(payload.inputs.inputs.embed_text, "");
assert.equal(payload.inputs.inputs.store_text, content);
assert.equal(
payload.inputs.inputs.store_text,
"repo_name: docs-repo\nrepo_owner: acme\npath: guides/setup.md\n\n# Title\n\n## First\nalpha\n\n## Second\nbeta\n",
);
assert.equal(
payload.inputs.inputs.document_id,
"acme.docsrepo.guidessetup.md",
@@ -92,7 +136,10 @@ test("main sends one request per file even when the document contains multiple s
assert.equal(calls.length, 1);
assert.equal(calls[0].url, "https://agents.example/api");
assert.equal(calls[0].body.inputs.inputs.embed_text, "");
assert.equal(calls[0].body.inputs.inputs.store_text, content);
assert.equal(
calls[0].body.inputs.inputs.store_text,
"repo_name: docs-repo\nrepo_owner: acme\npath: README.md\n\n# Title\n\n## First\nalpha\n\n## Second\nbeta\n",
);
assert.equal(
calls[0].body.inputs.inputs.document_id,
"acme.docsrepo.README.md",

1
package-lock.json generated
View File

@@ -92,7 +92,6 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz",
"integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==",
"peer": true,
"dependencies": {
"@octokit/auth-token": "^4.0.0",
"@octokit/graphql": "^7.1.0",