@beacon-build/sdk 2.4.3 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/dist/auth/argus-jwt.d.ts +30 -0
- package/dist/auth/argus-jwt.d.ts.map +1 -0
- package/dist/auth/argus-jwt.js +41 -0
- package/dist/auth/argus-jwt.js.map +1 -0
- package/dist/auth/rotating-jwt-provider.d.ts +12 -1
- package/dist/auth/rotating-jwt-provider.d.ts.map +1 -1
- package/dist/auth/rotating-jwt-provider.js +9 -3
- package/dist/auth/rotating-jwt-provider.js.map +1 -1
- package/dist/cli/backlog.d.ts +14 -0
- package/dist/cli/backlog.d.ts.map +1 -0
- package/dist/cli/backlog.js +228 -0
- package/dist/cli/backlog.js.map +1 -0
- package/dist/cli/claude-md-check.d.ts +18 -0
- package/dist/cli/claude-md-check.d.ts.map +1 -0
- package/dist/cli/claude-md-check.js +57 -0
- package/dist/cli/claude-md-check.js.map +1 -0
- package/dist/cli/context.d.ts +14 -0
- package/dist/cli/context.d.ts.map +1 -0
- package/dist/cli/context.js +465 -0
- package/dist/cli/context.js.map +1 -0
- package/dist/cli/help.d.ts +17 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +71 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/index.d.ts +22 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +212 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/project-log.d.ts +16 -0
- package/dist/cli/project-log.d.ts.map +1 -0
- package/dist/cli/project-log.js +185 -0
- package/dist/cli/project-log.js.map +1 -0
- package/dist/cli/setup-worktree.d.ts +23 -0
- package/dist/cli/setup-worktree.d.ts.map +1 -0
- package/dist/cli/setup-worktree.js +396 -0
- package/dist/cli/setup-worktree.js.map +1 -0
- package/dist/cli/update-client.d.ts +14 -0
- package/dist/cli/update-client.d.ts.map +1 -0
- package/dist/cli/update-client.js +629 -0
- package/dist/cli/update-client.js.map +1 -0
- package/dist/cli/workflow-sync.d.ts +19 -0
- package/dist/cli/workflow-sync.d.ts.map +1 -0
- package/dist/cli/workflow-sync.js +133 -0
- package/dist/cli/workflow-sync.js.map +1 -0
- package/dist/clients/admin/access-grants.client.d.ts +59 -0
- package/dist/clients/admin/access-grants.client.d.ts.map +1 -0
- package/dist/clients/admin/access-grants.client.js +21 -0
- package/dist/clients/admin/access-grants.client.js.map +1 -0
- package/dist/clients/admin/activity.client.d.ts +33 -0
- package/dist/clients/admin/activity.client.d.ts.map +1 -0
- package/dist/clients/admin/activity.client.js +28 -0
- package/dist/clients/admin/activity.client.js.map +1 -0
- package/dist/clients/admin/agents.client.d.ts +66 -0
- package/dist/clients/admin/agents.client.d.ts.map +1 -0
- package/dist/clients/admin/agents.client.js +150 -0
- package/dist/clients/admin/agents.client.js.map +1 -0
- package/dist/clients/admin/alerts.client.d.ts +8 -0
- package/dist/clients/admin/alerts.client.d.ts.map +1 -0
- package/dist/clients/admin/alerts.client.js +11 -0
- package/dist/clients/admin/alerts.client.js.map +1 -0
- package/dist/clients/admin/assets.client.d.ts +24 -0
- package/dist/clients/admin/assets.client.d.ts.map +1 -0
- package/dist/clients/admin/assets.client.js +34 -0
- package/dist/clients/admin/assets.client.js.map +1 -0
- package/dist/clients/admin/board-messages.client.d.ts +13 -0
- package/dist/clients/admin/board-messages.client.d.ts.map +1 -0
- package/dist/clients/admin/board-messages.client.js +16 -0
- package/dist/clients/admin/board-messages.client.js.map +1 -0
- package/dist/clients/admin/conversation-messages.client.d.ts +34 -0
- package/dist/clients/admin/conversation-messages.client.d.ts.map +1 -0
- package/dist/clients/admin/conversation-messages.client.js +61 -0
- package/dist/clients/admin/conversation-messages.client.js.map +1 -0
- package/dist/clients/admin/daemon-admin.client.d.ts +100 -0
- package/dist/clients/admin/daemon-admin.client.d.ts.map +1 -0
- package/dist/clients/admin/daemon-admin.client.js +37 -0
- package/dist/clients/admin/daemon-admin.client.js.map +1 -0
- package/dist/clients/admin/db.client.d.ts +12 -0
- package/dist/clients/admin/db.client.d.ts.map +1 -0
- package/dist/clients/admin/db.client.js +13 -0
- package/dist/clients/admin/db.client.js.map +1 -0
- package/dist/clients/admin/documents.client.d.ts +75 -0
- package/dist/clients/admin/documents.client.d.ts.map +1 -0
- package/dist/clients/admin/documents.client.js +123 -0
- package/dist/clients/admin/documents.client.js.map +1 -0
- package/dist/clients/admin/executions.client.d.ts +68 -0
- package/dist/clients/admin/executions.client.d.ts.map +1 -0
- package/dist/clients/admin/executions.client.js +67 -0
- package/dist/clients/admin/executions.client.js.map +1 -0
- package/dist/clients/admin/github-proxy.client.d.ts +51 -0
- package/dist/clients/admin/github-proxy.client.d.ts.map +1 -0
- package/dist/clients/admin/github-proxy.client.js +55 -0
- package/dist/clients/admin/github-proxy.client.js.map +1 -0
- package/dist/clients/admin/memories.client.d.ts +69 -0
- package/dist/clients/admin/memories.client.d.ts.map +1 -0
- package/dist/clients/admin/memories.client.js +126 -0
- package/dist/clients/admin/memories.client.js.map +1 -0
- package/dist/clients/admin/metrics.client.d.ts +80 -0
- package/dist/clients/admin/metrics.client.d.ts.map +1 -0
- package/dist/clients/admin/metrics.client.js +71 -0
- package/dist/clients/admin/metrics.client.js.map +1 -0
- package/dist/clients/admin/model-health-check.client.d.ts +33 -0
- package/dist/clients/admin/model-health-check.client.d.ts.map +1 -0
- package/dist/clients/admin/model-health-check.client.js +23 -0
- package/dist/clients/admin/model-health-check.client.js.map +1 -0
- package/dist/clients/admin/ops-admin.client.d.ts +206 -0
- package/dist/clients/admin/ops-admin.client.d.ts.map +1 -0
- package/dist/clients/admin/ops-admin.client.js +47 -0
- package/dist/clients/admin/ops-admin.client.js.map +1 -0
- package/dist/clients/admin/organizations.client.d.ts +74 -0
- package/dist/clients/admin/organizations.client.d.ts.map +1 -0
- package/dist/clients/admin/organizations.client.js +74 -0
- package/dist/clients/admin/organizations.client.js.map +1 -0
- package/dist/clients/admin/planning.client.d.ts +17 -0
- package/dist/clients/admin/planning.client.d.ts.map +1 -0
- package/dist/clients/admin/planning.client.js +58 -0
- package/dist/clients/admin/planning.client.js.map +1 -0
- package/dist/clients/admin/portal.client.d.ts +104 -0
- package/dist/clients/admin/portal.client.d.ts.map +1 -0
- package/dist/clients/admin/portal.client.js +122 -0
- package/dist/clients/admin/portal.client.js.map +1 -0
- package/dist/clients/admin/projects.client.d.ts +190 -0
- package/dist/clients/admin/projects.client.d.ts.map +1 -0
- package/dist/clients/admin/projects.client.js +122 -0
- package/dist/clients/admin/projects.client.js.map +1 -0
- package/dist/clients/admin/roster.client.d.ts +27 -0
- package/dist/clients/admin/roster.client.d.ts.map +1 -0
- package/dist/clients/admin/roster.client.js +30 -0
- package/dist/clients/admin/roster.client.js.map +1 -0
- package/dist/clients/admin/sessions.client.d.ts +70 -0
- package/dist/clients/admin/sessions.client.d.ts.map +1 -0
- package/dist/clients/admin/sessions.client.js +116 -0
- package/dist/clients/admin/sessions.client.js.map +1 -0
- package/dist/clients/admin/settings.client.d.ts +98 -0
- package/dist/clients/admin/settings.client.d.ts.map +1 -0
- package/dist/clients/admin/settings.client.js +72 -0
- package/dist/clients/admin/settings.client.js.map +1 -0
- package/dist/clients/admin/task-events.types.d.ts +73 -0
- package/dist/clients/admin/task-events.types.d.ts.map +1 -0
- package/dist/clients/admin/task-events.types.js +6 -0
- package/dist/clients/admin/task-events.types.js.map +1 -0
- package/dist/clients/admin/tasks-attachments.client.d.ts +31 -0
- package/dist/clients/admin/tasks-attachments.client.d.ts.map +1 -0
- package/dist/clients/admin/tasks-attachments.client.js +29 -0
- package/dist/clients/admin/tasks-attachments.client.js.map +1 -0
- package/dist/clients/admin/tasks-doc-links.client.d.ts +15 -0
- package/dist/clients/admin/tasks-doc-links.client.d.ts.map +1 -0
- package/dist/clients/admin/tasks-doc-links.client.js +10 -0
- package/dist/clients/admin/tasks-doc-links.client.js.map +1 -0
- package/dist/clients/admin/tasks-links.client.d.ts +13 -0
- package/dist/clients/admin/tasks-links.client.d.ts.map +1 -0
- package/dist/clients/admin/tasks-links.client.js +10 -0
- package/dist/clients/admin/tasks-links.client.js.map +1 -0
- package/dist/clients/admin/tasks-list-params.d.ts +7 -0
- package/dist/clients/admin/tasks-list-params.d.ts.map +1 -0
- package/dist/clients/admin/tasks-list-params.js +48 -0
- package/dist/clients/admin/tasks-list-params.js.map +1 -0
- package/dist/clients/admin/tasks-pr.client.d.ts +17 -0
- package/dist/clients/admin/tasks-pr.client.d.ts.map +1 -0
- package/dist/clients/admin/tasks-pr.client.js +11 -0
- package/dist/clients/admin/tasks-pr.client.js.map +1 -0
- package/dist/clients/admin/tasks-ref.client.d.ts +16 -0
- package/dist/clients/admin/tasks-ref.client.d.ts.map +1 -0
- package/dist/clients/admin/tasks-ref.client.js +22 -0
- package/dist/clients/admin/tasks-ref.client.js.map +1 -0
- package/dist/clients/admin/tasks.client.d.ts +87 -0
- package/dist/clients/admin/tasks.client.d.ts.map +1 -0
- package/dist/clients/admin/tasks.client.js +183 -0
- package/dist/clients/admin/tasks.client.js.map +1 -0
- package/dist/clients/admin/tasks.types.d.ts +147 -0
- package/dist/clients/admin/tasks.types.d.ts.map +1 -0
- package/dist/clients/admin/tasks.types.js +2 -0
- package/dist/clients/admin/tasks.types.js.map +1 -0
- package/dist/clients/admin/tool-calls.client.d.ts +12 -0
- package/dist/clients/admin/tool-calls.client.d.ts.map +1 -0
- package/dist/clients/admin/tool-calls.client.js +29 -0
- package/dist/clients/admin/tool-calls.client.js.map +1 -0
- package/dist/clients/admin/usage.client.d.ts +138 -0
- package/dist/clients/admin/usage.client.d.ts.map +1 -0
- package/dist/clients/admin/usage.client.js +96 -0
- package/dist/clients/admin/usage.client.js.map +1 -0
- package/dist/clients/admin/users.client.d.ts +137 -0
- package/dist/clients/admin/users.client.d.ts.map +1 -0
- package/dist/clients/admin/users.client.js +133 -0
- package/dist/clients/admin/users.client.js.map +1 -0
- package/dist/clients/agent/messaging.client.d.ts +34 -0
- package/dist/clients/agent/messaging.client.d.ts.map +1 -0
- package/dist/clients/agent/messaging.client.js +40 -0
- package/dist/clients/agent/messaging.client.js.map +1 -0
- package/dist/clients/capture.client.d.ts +8 -1
- package/dist/clients/capture.client.d.ts.map +1 -1
- package/dist/clients/capture.client.js.map +1 -1
- package/dist/clients/external-session-registrar.d.ts +16 -0
- package/dist/clients/external-session-registrar.d.ts.map +1 -0
- package/dist/clients/external-session-registrar.js +29 -0
- package/dist/clients/external-session-registrar.js.map +1 -0
- package/dist/clients/ops/agent-authorization-ops.client.d.ts +29 -0
- package/dist/clients/ops/agent-authorization-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/agent-authorization-ops.client.js +34 -0
- package/dist/clients/ops/agent-authorization-ops.client.js.map +1 -0
- package/dist/clients/ops/agents-affinity-ops.client.d.ts +27 -0
- package/dist/clients/ops/agents-affinity-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/agents-affinity-ops.client.js +14 -0
- package/dist/clients/ops/agents-affinity-ops.client.js.map +1 -0
- package/dist/clients/ops/agents-mint-ops.client.d.ts +34 -0
- package/dist/clients/ops/agents-mint-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/agents-mint-ops.client.js +55 -0
- package/dist/clients/ops/agents-mint-ops.client.js.map +1 -0
- package/dist/clients/ops/agents-ops.client.d.ts +120 -0
- package/dist/clients/ops/agents-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/agents-ops.client.js +217 -0
- package/dist/clients/ops/agents-ops.client.js.map +1 -0
- package/dist/clients/ops/agents-stats-ops.client.d.ts +19 -0
- package/dist/clients/ops/agents-stats-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/agents-stats-ops.client.js +10 -0
- package/dist/clients/ops/agents-stats-ops.client.js.map +1 -0
- package/dist/clients/ops/board-messages-ops.client.d.ts +14 -0
- package/dist/clients/ops/board-messages-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/board-messages-ops.client.js +26 -0
- package/dist/clients/ops/board-messages-ops.client.js.map +1 -0
- package/dist/clients/ops/campaign-events-ops.client.d.ts +38 -0
- package/dist/clients/ops/campaign-events-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/campaign-events-ops.client.js +28 -0
- package/dist/clients/ops/campaign-events-ops.client.js.map +1 -0
- package/dist/clients/ops/conversation-messages-ops.client.d.ts +10 -0
- package/dist/clients/ops/conversation-messages-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/conversation-messages-ops.client.js +20 -0
- package/dist/clients/ops/conversation-messages-ops.client.js.map +1 -0
- package/dist/clients/ops/document-sync.client.d.ts +50 -0
- package/dist/clients/ops/document-sync.client.d.ts.map +1 -0
- package/dist/clients/ops/document-sync.client.js +108 -0
- package/dist/clients/ops/document-sync.client.js.map +1 -0
- package/dist/clients/ops/documents-ops.client.d.ts +20 -0
- package/dist/clients/ops/documents-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/documents-ops.client.js +31 -0
- package/dist/clients/ops/documents-ops.client.js.map +1 -0
- package/dist/clients/ops/github-credential-ops.client.d.ts +29 -0
- package/dist/clients/ops/github-credential-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/github-credential-ops.client.js +32 -0
- package/dist/clients/ops/github-credential-ops.client.js.map +1 -0
- package/dist/clients/ops/leads-ops.client.d.ts +36 -0
- package/dist/clients/ops/leads-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/leads-ops.client.js +35 -0
- package/dist/clients/ops/leads-ops.client.js.map +1 -0
- package/dist/clients/ops/memories-ops.client.d.ts +25 -0
- package/dist/clients/ops/memories-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/memories-ops.client.js +75 -0
- package/dist/clients/ops/memories-ops.client.js.map +1 -0
- package/dist/clients/ops/metrics-ops.client.d.ts +38 -0
- package/dist/clients/ops/metrics-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/metrics-ops.client.js +23 -0
- package/dist/clients/ops/metrics-ops.client.js.map +1 -0
- package/dist/clients/ops/ops-db.client.d.ts +49 -0
- package/dist/clients/ops/ops-db.client.d.ts.map +1 -0
- package/dist/clients/ops/ops-db.client.js +62 -0
- package/dist/clients/ops/ops-db.client.js.map +1 -0
- package/dist/clients/ops/ops-logs.client.d.ts +63 -0
- package/dist/clients/ops/ops-logs.client.d.ts.map +1 -0
- package/dist/clients/ops/ops-logs.client.js +68 -0
- package/dist/clients/ops/ops-logs.client.js.map +1 -0
- package/dist/clients/ops/ops-mq.client.d.ts +33 -0
- package/dist/clients/ops/ops-mq.client.d.ts.map +1 -0
- package/dist/clients/ops/ops-mq.client.js +18 -0
- package/dist/clients/ops/ops-mq.client.js.map +1 -0
- package/dist/clients/ops/ops-northflank.client.d.ts +48 -0
- package/dist/clients/ops/ops-northflank.client.d.ts.map +1 -0
- package/dist/clients/ops/ops-northflank.client.js +55 -0
- package/dist/clients/ops/ops-northflank.client.js.map +1 -0
- package/dist/clients/ops/ops-storage.client.d.ts +34 -0
- package/dist/clients/ops/ops-storage.client.d.ts.map +1 -0
- package/dist/clients/ops/ops-storage.client.js +39 -0
- package/dist/clients/ops/ops-storage.client.js.map +1 -0
- package/dist/clients/ops/ops-workers.client.d.ts +63 -0
- package/dist/clients/ops/ops-workers.client.d.ts.map +1 -0
- package/dist/clients/ops/ops-workers.client.js +109 -0
- package/dist/clients/ops/ops-workers.client.js.map +1 -0
- package/dist/clients/ops/ops-workers.types.d.ts +179 -0
- package/dist/clients/ops/ops-workers.types.d.ts.map +1 -0
- package/dist/clients/ops/ops-workers.types.js +2 -0
- package/dist/clients/ops/ops-workers.types.js.map +1 -0
- package/dist/clients/ops/projects-ops.client.d.ts +20 -0
- package/dist/clients/ops/projects-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/projects-ops.client.js +18 -0
- package/dist/clients/ops/projects-ops.client.js.map +1 -0
- package/dist/clients/ops/realtime-ops.client.d.ts +14 -0
- package/dist/clients/ops/realtime-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/realtime-ops.client.js +10 -0
- package/dist/clients/ops/realtime-ops.client.js.map +1 -0
- package/dist/clients/ops/sessions-ops.client.d.ts +60 -0
- package/dist/clients/ops/sessions-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/sessions-ops.client.js +139 -0
- package/dist/clients/ops/sessions-ops.client.js.map +1 -0
- package/dist/clients/ops/tasks-ops.client.d.ts +20 -0
- package/dist/clients/ops/tasks-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/tasks-ops.client.js +39 -0
- package/dist/clients/ops/tasks-ops.client.js.map +1 -0
- package/dist/clients/ops/thread-messaging.client.d.ts +93 -0
- package/dist/clients/ops/thread-messaging.client.d.ts.map +1 -0
- package/dist/clients/ops/thread-messaging.client.js +153 -0
- package/dist/clients/ops/thread-messaging.client.js.map +1 -0
- package/dist/clients/ops/thread-messaging.inbox-read.d.ts +50 -0
- package/dist/clients/ops/thread-messaging.inbox-read.d.ts.map +1 -0
- package/dist/clients/ops/thread-messaging.inbox-read.js +70 -0
- package/dist/clients/ops/thread-messaging.inbox-read.js.map +1 -0
- package/dist/clients/ops/thread-messaging.lifecycle.d.ts +29 -0
- package/dist/clients/ops/thread-messaging.lifecycle.d.ts.map +1 -0
- package/dist/clients/ops/thread-messaging.lifecycle.js +50 -0
- package/dist/clients/ops/thread-messaging.lifecycle.js.map +1 -0
- package/dist/clients/ops/thread-messaging.owner-scope.d.ts +54 -0
- package/dist/clients/ops/thread-messaging.owner-scope.d.ts.map +1 -0
- package/dist/clients/ops/thread-messaging.owner-scope.js +33 -0
- package/dist/clients/ops/thread-messaging.owner-scope.js.map +1 -0
- package/dist/clients/ops/thread-messaging.transport.d.ts +20 -0
- package/dist/clients/ops/thread-messaging.transport.d.ts.map +1 -0
- package/dist/clients/ops/thread-messaging.transport.js +42 -0
- package/dist/clients/ops/thread-messaging.transport.js.map +1 -0
- package/dist/clients/ops/thread-messaging.types.d.ts +60 -0
- package/dist/clients/ops/thread-messaging.types.d.ts.map +1 -0
- package/dist/clients/ops/thread-messaging.types.js +2 -0
- package/dist/clients/ops/thread-messaging.types.js.map +1 -0
- package/dist/clients/ops/tool-calls-ops.client.d.ts +12 -0
- package/dist/clients/ops/tool-calls-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/tool-calls-ops.client.js +29 -0
- package/dist/clients/ops/tool-calls-ops.client.js.map +1 -0
- package/dist/clients/ops/usage-workflows-ops.client.d.ts +22 -0
- package/dist/clients/ops/usage-workflows-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/usage-workflows-ops.client.js +23 -0
- package/dist/clients/ops/usage-workflows-ops.client.js.map +1 -0
- package/dist/factory/admin-sdk.d.ts +96 -0
- package/dist/factory/admin-sdk.d.ts.map +1 -0
- package/dist/factory/admin-sdk.js +112 -0
- package/dist/factory/admin-sdk.js.map +1 -0
- package/dist/factory/ops-sdk.d.ts +74 -0
- package/dist/factory/ops-sdk.d.ts.map +1 -0
- package/dist/factory/ops-sdk.js +88 -0
- package/dist/factory/ops-sdk.js.map +1 -0
- package/dist/index.additional-client-types.d.ts +24 -0
- package/dist/index.additional-client-types.d.ts.map +1 -0
- package/dist/index.additional-client-types.js +16 -0
- package/dist/index.additional-client-types.js.map +1 -0
- package/dist/legacy/sdk-factory.d.ts +37 -0
- package/dist/legacy/sdk-factory.d.ts.map +1 -0
- package/dist/legacy/sdk-factory.js +36 -0
- package/dist/legacy/sdk-factory.js.map +1 -0
- package/dist/lib/context.d.ts +69 -0
- package/dist/lib/context.d.ts.map +1 -0
- package/dist/lib/context.js +225 -0
- package/dist/lib/context.js.map +1 -0
- package/dist/lib/db.d.ts +16 -0
- package/dist/lib/db.d.ts.map +1 -0
- package/dist/lib/db.js +50 -0
- package/dist/lib/db.js.map +1 -0
- package/dist/lib/logger.d.ts +14 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +14 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/opencode.d.ts +33 -0
- package/dist/lib/opencode.d.ts.map +1 -0
- package/dist/lib/opencode.js +101 -0
- package/dist/lib/opencode.js.map +1 -0
- package/dist/lib/utils.d.ts +18 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +40 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/manifest.admin-entries-2.d.ts +9 -0
- package/dist/manifest.admin-entries-2.d.ts.map +1 -0
- package/dist/manifest.admin-entries-2.js +218 -0
- package/dist/manifest.admin-entries-2.js.map +1 -0
- package/dist/manifest.admin-entries.d.ts +10 -0
- package/dist/manifest.admin-entries.d.ts.map +1 -0
- package/dist/manifest.admin-entries.js +220 -0
- package/dist/manifest.admin-entries.js.map +1 -0
- package/dist/manifest.negative-list.d.ts.map +1 -1
- package/dist/manifest.negative-list.js +21 -0
- package/dist/manifest.negative-list.js.map +1 -1
- package/dist/manifest.ops-entries.d.ts +8 -0
- package/dist/manifest.ops-entries.d.ts.map +1 -0
- package/dist/manifest.ops-entries.js +282 -0
- package/dist/manifest.ops-entries.js.map +1 -0
- package/dist/transport/ops-api-client.d.ts +80 -0
- package/dist/transport/ops-api-client.d.ts.map +1 -0
- package/dist/transport/ops-api-client.js +211 -0
- package/dist/transport/ops-api-client.js.map +1 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @beacon-build/sdk Changelog
|
|
2
2
|
|
|
3
|
+
## 2.4.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 68ad6f7: fix(ide-portal): resolve ops key from ambient OPS_API_KEY in the container for non-local envs, and make Argus JWT boot-mint failures degrade non-fatally instead of exiting the process (B904)
|
|
8
|
+
- 6d90fc4: Cockpit: every tool interaction (call + result) is now expandable per turn. Amends INV-IDE-3 — tool output text is now captured, redacted, size-capped, and threaded end-to-end instead of being discarded (only byte size survived before).
|
|
9
|
+
- 7330b8d: Fix B911: repair red integration CI and the F336 alert-lifecycle defects it masked. The missing F336 migration meant alert inserts always 400'd, hiding four real bugs in the feature:
|
|
10
|
+
- Migration widening `tasks_status_check` (F336 statuses open/acknowledged/resolved) and `tasks_type_check` (F336 type alert) to match the code enums.
|
|
11
|
+
- Register the four raw-HTTP seams the INV-3 route-contract surfaced (F624 `GET /ops/alert-config`; F336 `POST /tasks/alerts`, `/tasks/{id}/ack`, `/tasks/{id}/resolve`) in the SDK negative list.
|
|
12
|
+
- Derive a new task's initial status from its type state machine (`typeStateMachines[type].initialStatus`) instead of hardcoding `queued`, so an `alert` starts `open` (byte-identical `queued` for every other type).
|
|
13
|
+
- Persist `alertKey` on both task create paths so `alertRaise`'s open-alert dedup works.
|
|
14
|
+
- Expose `severity`/`alertKey`/`acknowledgedAt` on the task DTO so alert responses carry them.
|
|
15
|
+
- Map a terminal-state ack/resolve (e.g. a second resolve of a resolved alert) to HTTP 422 instead of 500.
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [a731e8c]
|
|
18
|
+
- Updated dependencies [1b251c2]
|
|
19
|
+
- Updated dependencies [6d90fc4]
|
|
20
|
+
- Updated dependencies [1ef9bc3]
|
|
21
|
+
- Updated dependencies [06c9e95]
|
|
22
|
+
- Updated dependencies [e5a6d21]
|
|
23
|
+
- Updated dependencies [7330b8d]
|
|
24
|
+
- @beacon-build/core@2.5.0
|
|
25
|
+
|
|
3
26
|
## 2.4.3
|
|
4
27
|
|
|
5
28
|
### Patch Changes
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* F437/C958 — Shared Argus-JWT minting + rotation helper.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from the duplicated `apps/ide/src/argus-jwt.ts` and
|
|
5
|
+
* `apps/ide-portal/src/engine/argus-jwt.ts` implementations into
|
|
6
|
+
* `@beacon-build/sdk` so every consumer (sidecar, portal, janitor, MCP agent)
|
|
7
|
+
* uses the SAME shape.
|
|
8
|
+
*
|
|
9
|
+
* `createRotatingArgusJwt` is a thin wrapper around `createRotatingJwtProvider`
|
|
10
|
+
* that supplies the Argus-specific mint call (`resolveSystemAgentAndMintToken`).
|
|
11
|
+
* The caller provides a `RotatingJwtLog` — `sdk` has no dependency on
|
|
12
|
+
* `@beacon-build/logger`, and every caller's real logger already satisfies this
|
|
13
|
+
* minimal shape.
|
|
14
|
+
*/
|
|
15
|
+
import { type RotatingJwtLog } from './rotating-jwt-provider.js';
|
|
16
|
+
/**
|
|
17
|
+
* Resolve Argus's agent id, then mint an agent-JWT via the mint boundary
|
|
18
|
+
* (`POST /v1/agent-token`, `OPS_API_KEY`-gated, system-role `agentId` path).
|
|
19
|
+
*/
|
|
20
|
+
export declare function doMintArgusJwt(apiUrl: string, apiKey: string): Promise<{
|
|
21
|
+
agentId: string;
|
|
22
|
+
token: string;
|
|
23
|
+
}>;
|
|
24
|
+
/**
|
|
25
|
+
* Mint an Argus agent-JWT at boot (fail-fast), then keep the token rotating for
|
|
26
|
+
* the life of a long-running daemon via the shared `createRotatingJwtProvider`.
|
|
27
|
+
* Returns a PROVIDER — re-read per request — never a captured string.
|
|
28
|
+
*/
|
|
29
|
+
export declare function createRotatingArgusJwt(apiUrl: string, apiKey: string, log: RotatingJwtLog): Promise<() => string>;
|
|
30
|
+
//# sourceMappingURL=argus-jwt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argus-jwt.d.ts","sourceRoot":"","sources":["../../src/auth/argus-jwt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAS3F;;;GAGG;AACH,wBAAsB,cAAc,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAG7C;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,cAAc,GACpB,OAAO,CAAC,MAAM,MAAM,CAAC,CAQvB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* F437/C958 — Shared Argus-JWT minting + rotation helper.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from the duplicated `apps/ide/src/argus-jwt.ts` and
|
|
5
|
+
* `apps/ide-portal/src/engine/argus-jwt.ts` implementations into
|
|
6
|
+
* `@beacon-build/sdk` so every consumer (sidecar, portal, janitor, MCP agent)
|
|
7
|
+
* uses the SAME shape.
|
|
8
|
+
*
|
|
9
|
+
* `createRotatingArgusJwt` is a thin wrapper around `createRotatingJwtProvider`
|
|
10
|
+
* that supplies the Argus-specific mint call (`resolveSystemAgentAndMintToken`).
|
|
11
|
+
* The caller provides a `RotatingJwtLog` — `sdk` has no dependency on
|
|
12
|
+
* `@beacon-build/logger`, and every caller's real logger already satisfies this
|
|
13
|
+
* minimal shape.
|
|
14
|
+
*/
|
|
15
|
+
import { AgentsOpsClient, OpsApiClient } from '../index.js';
|
|
16
|
+
import { createRotatingJwtProvider } from './rotating-jwt-provider.js';
|
|
17
|
+
// F437/D1: Argus's project/alias — matches every other automation consumer.
|
|
18
|
+
const ARGUS_PROJECT = 'beacon-platform';
|
|
19
|
+
const ARGUS_ALIAS = 'Argus';
|
|
20
|
+
// B468: the API expires an agent-JWT after 8h — refresh at half that.
|
|
21
|
+
const ARGUS_JWT_REFRESH_MS = 4 * 60 * 60 * 1000;
|
|
22
|
+
/**
|
|
23
|
+
* Resolve Argus's agent id, then mint an agent-JWT via the mint boundary
|
|
24
|
+
* (`POST /v1/agent-token`, `OPS_API_KEY`-gated, system-role `agentId` path).
|
|
25
|
+
*/
|
|
26
|
+
export async function doMintArgusJwt(apiUrl, apiKey) {
|
|
27
|
+
const opsClient = new AgentsOpsClient(new OpsApiClient({ baseUrl: apiUrl, apiKey }));
|
|
28
|
+
return opsClient.resolveSystemAgentAndMintToken(ARGUS_ALIAS, ARGUS_PROJECT);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Mint an Argus agent-JWT at boot (fail-fast), then keep the token rotating for
|
|
32
|
+
* the life of a long-running daemon via the shared `createRotatingJwtProvider`.
|
|
33
|
+
* Returns a PROVIDER — re-read per request — never a captured string.
|
|
34
|
+
*/
|
|
35
|
+
export async function createRotatingArgusJwt(apiUrl, apiKey, log) {
|
|
36
|
+
return createRotatingJwtProvider(async () => {
|
|
37
|
+
const { agentId, token } = await doMintArgusJwt(apiUrl, apiKey);
|
|
38
|
+
return { token, logContext: { agentId } };
|
|
39
|
+
}, { refreshMs: ARGUS_JWT_REFRESH_MS, log });
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=argus-jwt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argus-jwt.js","sourceRoot":"","sources":["../../src/auth/argus-jwt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,yBAAyB,EAAuB,MAAM,4BAA4B,CAAA;AAE3F,4EAA4E;AAC5E,MAAM,aAAa,GAAG,iBAAiB,CAAA;AACvC,MAAM,WAAW,GAAG,OAAO,CAAA;AAE3B,sEAAsE;AACtE,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAE/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,MAAc,EACd,MAAc;IAEd,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IACpF,OAAO,SAAS,CAAC,8BAA8B,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;AAC/E,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,MAAc,EACd,MAAc,EACd,GAAmB;IAEnB,OAAO,yBAAyB,CAC5B,KAAK,IAAI,EAAE;QACP,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,CAAA;IAC7C,CAAC,EACD,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAC3C,CAAA;AACL,CAAC"}
|
|
@@ -66,11 +66,22 @@ export interface RotatingJwtProviderOptions {
|
|
|
66
66
|
* keep-current handling as any other mint error). Defaults to
|
|
67
67
|
* `DEFAULT_MINT_TIMEOUT_MS`. */
|
|
68
68
|
timeoutMs?: number;
|
|
69
|
+
/** B904: what a FAILED boot mint does. `'exit'` (default) preserves the original
|
|
70
|
+
* fail-fast contract this module's doc comment describes — the right behavior for a
|
|
71
|
+
* daemon whose caller does NOT already handle a rejected boot (MCP servers via B710's
|
|
72
|
+
* `register()`/`connect()` gate, the janitor, the retired host sidecar). `'throw'` is
|
|
73
|
+
* for a caller that DOES already degrade non-fatally on a rejected promise (e.g. the
|
|
74
|
+
* ide-portal's `engine-runtime.ts`, whose lazy `ensureEngineRuntime` already wraps
|
|
75
|
+
* construction in a `.catch()` that logs a WARN and returns `null` instead of crashing)
|
|
76
|
+
* — there, `process.exit(1)` mid-construction is strictly worse than the SAME degrade
|
|
77
|
+
* path an ordinary resolution failure already takes, because it bypasses that `.catch()`
|
|
78
|
+
* entirely and kills the whole process instead of just disabling one feature. */
|
|
79
|
+
onBootMintFailure?: 'exit' | 'throw';
|
|
69
80
|
}
|
|
70
81
|
/**
|
|
71
82
|
* Mint `mintFn` once at boot (fail-fast on failure — exits the process), then keep the
|
|
72
83
|
* token rotating for the life of a long-running daemon on an unref'd timer. Returns a
|
|
73
84
|
* PROVIDER — re-read per request — never a captured string.
|
|
74
85
|
*/
|
|
75
|
-
export declare function createRotatingJwtProvider(mintFn: () => Promise<JwtMintResult>, { refreshMs, log, timeoutMs }: RotatingJwtProviderOptions): Promise<() => string>;
|
|
86
|
+
export declare function createRotatingJwtProvider(mintFn: () => Promise<JwtMintResult>, { refreshMs, log, timeoutMs, onBootMintFailure, }: RotatingJwtProviderOptions): Promise<() => string>;
|
|
76
87
|
//# sourceMappingURL=rotating-jwt-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rotating-jwt-provider.d.ts","sourceRoot":"","sources":["../../src/auth/rotating-jwt-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAClE;AAED;;iFAEiF;AACjF,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACvC;AAED;;kEAEkE;AAClE,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAE7C,MAAM,WAAW,0BAA0B;IACvC;;mEAE+D;IAC/D,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,cAAc,CAAA;IACnB;;;qCAGiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"rotating-jwt-provider.d.ts","sourceRoot":"","sources":["../../src/auth/rotating-jwt-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAClE;AAED;;iFAEiF;AACjF,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACvC;AAED;;kEAEkE;AAClE,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAE7C,MAAM,WAAW,0BAA0B;IACvC;;mEAE+D;IAC/D,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,cAAc,CAAA;IACnB;;;qCAGiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;;;;sFASkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACvC;AAsDD;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC3C,MAAM,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,EACpC,EACI,SAAS,EACT,GAAG,EACH,SAAmC,EACnC,iBAA0B,GAC7B,EAAE,0BAA0B,GAC9B,OAAO,CAAC,MAAM,MAAM,CAAC,CAsBvB"}
|
|
@@ -65,7 +65,7 @@ function withMintTimeout(mintFn, timeoutMs) {
|
|
|
65
65
|
});
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
|
-
async function mintAtBoot(mintFn, log, timeoutMs) {
|
|
68
|
+
async function mintAtBoot(mintFn, log, timeoutMs, onBootMintFailure) {
|
|
69
69
|
try {
|
|
70
70
|
const { token, logContext } = await withMintTimeout(mintFn, timeoutMs);
|
|
71
71
|
log.info('minted rotating JWT at boot', logContext);
|
|
@@ -75,6 +75,12 @@ async function mintAtBoot(mintFn, log, timeoutMs) {
|
|
|
75
75
|
log.error('rotating JWT boot mint failed', {
|
|
76
76
|
error: err instanceof Error ? err.message : String(err),
|
|
77
77
|
});
|
|
78
|
+
// B904: 'throw' lets a caller that already degrades non-fatally on a rejected
|
|
79
|
+
// promise (see RotatingJwtProviderOptions.onBootMintFailure doc) catch this instead
|
|
80
|
+
// of the whole process dying. 'exit' (default) is the original fail-fast contract.
|
|
81
|
+
if (onBootMintFailure === 'throw') {
|
|
82
|
+
throw err instanceof Error ? err : new Error(String(err));
|
|
83
|
+
}
|
|
78
84
|
process.exit(1);
|
|
79
85
|
}
|
|
80
86
|
}
|
|
@@ -83,8 +89,8 @@ async function mintAtBoot(mintFn, log, timeoutMs) {
|
|
|
83
89
|
* token rotating for the life of a long-running daemon on an unref'd timer. Returns a
|
|
84
90
|
* PROVIDER — re-read per request — never a captured string.
|
|
85
91
|
*/
|
|
86
|
-
export async function createRotatingJwtProvider(mintFn, { refreshMs, log, timeoutMs = DEFAULT_MINT_TIMEOUT_MS }) {
|
|
87
|
-
let current = await mintAtBoot(mintFn, log, timeoutMs);
|
|
92
|
+
export async function createRotatingJwtProvider(mintFn, { refreshMs, log, timeoutMs = DEFAULT_MINT_TIMEOUT_MS, onBootMintFailure = 'exit', }) {
|
|
93
|
+
let current = await mintAtBoot(mintFn, log, timeoutMs, onBootMintFailure);
|
|
88
94
|
const timer = setInterval(() => {
|
|
89
95
|
void (async () => {
|
|
90
96
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rotating-jwt-provider.js","sourceRoot":"","sources":["../../src/auth/rotating-jwt-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAeH;;kEAEkE;AAClE,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"rotating-jwt-provider.js","sourceRoot":"","sources":["../../src/auth/rotating-jwt-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* beacon-backlog — @beacon-build/sdk
|
|
4
|
+
*
|
|
5
|
+
* Generates a backlog.md from the tasks table in PostgreSQL.
|
|
6
|
+
* Supports arbitrary nesting: FeatureSet -> Feature/Task.
|
|
7
|
+
* Renders time totals per group from result.time_h.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* beacon-backlog <project> # print to stdout
|
|
11
|
+
* beacon-backlog <project> --write # write to <project>/docs/backlog.md
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=backlog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backlog.d.ts","sourceRoot":"","sources":["../../src/cli/backlog.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* beacon-backlog — @beacon-build/sdk
|
|
4
|
+
*
|
|
5
|
+
* Generates a backlog.md from the tasks table in PostgreSQL.
|
|
6
|
+
* Supports arbitrary nesting: FeatureSet -> Feature/Task.
|
|
7
|
+
* Renders time totals per group from result.time_h.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* beacon-backlog <project> # print to stdout
|
|
11
|
+
* beacon-backlog <project> --write # write to <project>/docs/backlog.md
|
|
12
|
+
*/
|
|
13
|
+
import { Pool } from 'pg';
|
|
14
|
+
import { writeFileSync, readFileSync, existsSync } from 'node:fs';
|
|
15
|
+
import { resolve } from 'node:path';
|
|
16
|
+
import { parse } from 'yaml';
|
|
17
|
+
import { getDatabaseUrl } from '../lib/db.js';
|
|
18
|
+
import { createCliLogger } from '../lib/logger.js';
|
|
19
|
+
const log = createCliLogger('backlog');
|
|
20
|
+
// ─── CLI ────────────────────────────────────────────────────────────────────
|
|
21
|
+
const args = process.argv.slice(2).filter((a) => !a.startsWith('-'));
|
|
22
|
+
const flags = process.argv.slice(2).filter((a) => a.startsWith('-'));
|
|
23
|
+
const project = args[0];
|
|
24
|
+
const doWrite = flags.includes('--write');
|
|
25
|
+
if (!project) {
|
|
26
|
+
log.error('missing required argument', { usage: 'beacon-cli backlog <project> [--write]' });
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
// ─── Query ──────────────────────────────────────────────────────────────────
|
|
30
|
+
const pool = new Pool({ connectionString: getDatabaseUrl() });
|
|
31
|
+
const { rows: tasks } = await pool.query(`SELECT id, ref, title, description, type AS task_type, status, priority, size, parent_id, depends_on, result
|
|
32
|
+
FROM tasks
|
|
33
|
+
WHERE project = $1
|
|
34
|
+
ORDER BY ref ASC`, [project]);
|
|
35
|
+
await pool.end();
|
|
36
|
+
if (!tasks.length) {
|
|
37
|
+
log.warn('no tasks found', { project });
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
// ─── Helpers ────────────────────────────────────────────────────────────────
|
|
41
|
+
const taskById = new Map(tasks.map((t) => [t.id, t]));
|
|
42
|
+
function sortByTaskId(list) {
|
|
43
|
+
return list.sort((a, b) => {
|
|
44
|
+
const na = parseInt((a.ref ?? '').replace(/\D+/g, ''), 10) || 0;
|
|
45
|
+
const nb = parseInt((b.ref ?? '').replace(/\D+/g, ''), 10) || 0;
|
|
46
|
+
return na - nb;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function sortByPrioDesc(list) {
|
|
50
|
+
return list.sort((a, b) => {
|
|
51
|
+
if (b.priority !== a.priority)
|
|
52
|
+
return b.priority - a.priority;
|
|
53
|
+
const na = parseInt((a.ref ?? '').replace(/\D+/g, ''), 10) || 0;
|
|
54
|
+
const nb = parseInt((b.ref ?? '').replace(/\D+/g, ''), 10) || 0;
|
|
55
|
+
return na - nb;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
// ─── Build tree ─────────────────────────────────────────────────────────────
|
|
59
|
+
const childrenByParent = new Map();
|
|
60
|
+
for (const t of tasks) {
|
|
61
|
+
if (t.parent_id) {
|
|
62
|
+
if (!childrenByParent.has(t.parent_id))
|
|
63
|
+
childrenByParent.set(t.parent_id, []);
|
|
64
|
+
childrenByParent.get(t.parent_id).push(t);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const rootFeatureSets = sortByTaskId(tasks.filter((t) => !t.parent_id && t.task_type === 'featureSet'));
|
|
68
|
+
const topLevel = sortByTaskId(tasks.filter((t) => !t.parent_id && t.task_type !== 'featureSet'));
|
|
69
|
+
// ─── Recursive time sum ─────────────────────────────────────────────────────
|
|
70
|
+
function sumTimeH(taskId) {
|
|
71
|
+
const children = childrenByParent.get(taskId) ?? [];
|
|
72
|
+
let total = 0;
|
|
73
|
+
for (const child of children) {
|
|
74
|
+
total += child.result?.time_h ?? 0;
|
|
75
|
+
if (child.task_type === 'featureSet') {
|
|
76
|
+
total += sumTimeH(child.id);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return total;
|
|
80
|
+
}
|
|
81
|
+
// ─── Format ─────────────────────────────────────────────────────────────────
|
|
82
|
+
const STATUS_ICON = {
|
|
83
|
+
queued: '\u2B1A',
|
|
84
|
+
in_progress: '\u25B6',
|
|
85
|
+
done: '\u2713',
|
|
86
|
+
failed: '\u2717',
|
|
87
|
+
cancelled: '\u2014',
|
|
88
|
+
};
|
|
89
|
+
const PRIORITY_LABEL = {
|
|
90
|
+
0: '',
|
|
91
|
+
10: '\u2605',
|
|
92
|
+
20: '\u2605\u2605',
|
|
93
|
+
50: '\uD83D\uDD25',
|
|
94
|
+
};
|
|
95
|
+
function formatTask(t, indent = '') {
|
|
96
|
+
const icon = STATUS_ICON[t.status] ?? '?';
|
|
97
|
+
const prio = PRIORITY_LABEL[t.priority] ?? (t.priority > 0 ? `p${t.priority}` : '');
|
|
98
|
+
const size = t.size ? `[${t.size}]` : '';
|
|
99
|
+
const type = !['feature', 'featureSet'].includes(t.task_type) ? `(${t.task_type})` : '';
|
|
100
|
+
const depsArr = Array.isArray(t.depends_on)
|
|
101
|
+
? t.depends_on
|
|
102
|
+
: typeof t.depends_on === 'string'
|
|
103
|
+
? JSON.parse(t.depends_on)
|
|
104
|
+
: [];
|
|
105
|
+
const deps = depsArr.map((id) => taskById.get(id)?.ref ?? id.slice(0, 8)).join(', ');
|
|
106
|
+
const id = t.ref ?? t.id.slice(0, 8);
|
|
107
|
+
const parts = [`${indent}- [${icon}] **${id}** ${t.title}`];
|
|
108
|
+
if (size)
|
|
109
|
+
parts.push(size);
|
|
110
|
+
if (prio)
|
|
111
|
+
parts.push(prio);
|
|
112
|
+
if (type)
|
|
113
|
+
parts.push(type);
|
|
114
|
+
if (deps)
|
|
115
|
+
parts.push(`\u2190 ${deps}`);
|
|
116
|
+
return parts.join(' ');
|
|
117
|
+
}
|
|
118
|
+
// ─── Recursive renderer for featureSets ─────────────────────────────────────
|
|
119
|
+
function renderFeatureSet(fs, depth = 0) {
|
|
120
|
+
const result = [];
|
|
121
|
+
const icon = STATUS_ICON[fs.status] ?? '?';
|
|
122
|
+
const headerPrefix = '#'.repeat(3 + depth);
|
|
123
|
+
const timeH = sumTimeH(fs.id);
|
|
124
|
+
const timeSuffix = timeH > 0 ? ` (${timeH.toFixed(1)}h)` : '';
|
|
125
|
+
result.push(`${headerPrefix} ${fs.ref}: ${fs.title} [${icon}]${timeSuffix}`);
|
|
126
|
+
if (fs.description)
|
|
127
|
+
result.push(`> ${fs.description}`);
|
|
128
|
+
result.push('');
|
|
129
|
+
const children = sortByTaskId(childrenByParent.get(fs.id) ?? []);
|
|
130
|
+
const childFeatureSets = children.filter((c) => c.task_type === 'featureSet');
|
|
131
|
+
const childTasks = children.filter((c) => c.task_type !== 'featureSet');
|
|
132
|
+
const indent = ' '.repeat(depth);
|
|
133
|
+
if (childTasks.length) {
|
|
134
|
+
for (const child of childTasks) {
|
|
135
|
+
result.push(formatTask(child, indent));
|
|
136
|
+
}
|
|
137
|
+
result.push('');
|
|
138
|
+
}
|
|
139
|
+
for (const childFs of childFeatureSets) {
|
|
140
|
+
result.push(...renderFeatureSet(childFs, depth + 1));
|
|
141
|
+
}
|
|
142
|
+
return result;
|
|
143
|
+
}
|
|
144
|
+
// ─── Collect all open items ─────────────────────────────────────────────────
|
|
145
|
+
const allOpen = sortByPrioDesc(tasks.filter((t) => t.task_type !== 'featureSet' && (t.status === 'queued' || t.status === 'in_progress')));
|
|
146
|
+
// ─── Build output ──────────────────────────────────────────────────────────
|
|
147
|
+
const lines = [];
|
|
148
|
+
lines.push(`# ${project} \u2014 Backlog`);
|
|
149
|
+
lines.push('');
|
|
150
|
+
lines.push(`> Generated from tasks DB on ${new Date().toISOString().slice(0, 10)}`);
|
|
151
|
+
lines.push('');
|
|
152
|
+
if (allOpen.length) {
|
|
153
|
+
lines.push('## Up Next');
|
|
154
|
+
lines.push('');
|
|
155
|
+
for (const t of allOpen) {
|
|
156
|
+
const parent = t.parent_id ? taskById.get(t.parent_id) : null;
|
|
157
|
+
const parentRef = parent ? ` \u00B7 ${parent.ref}` : '';
|
|
158
|
+
lines.push(formatTask(t) + parentRef);
|
|
159
|
+
}
|
|
160
|
+
lines.push('');
|
|
161
|
+
}
|
|
162
|
+
if (rootFeatureSets.length) {
|
|
163
|
+
lines.push('## Feature Sets');
|
|
164
|
+
lines.push('');
|
|
165
|
+
for (const fs of rootFeatureSets) {
|
|
166
|
+
lines.push(...renderFeatureSet(fs));
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
const queued = topLevel.filter((t) => t.status === 'queued' || t.status === 'in_progress');
|
|
170
|
+
const done = topLevel.filter((t) => t.status === 'done');
|
|
171
|
+
const rest = topLevel.filter((t) => !['queued', 'in_progress', 'done'].includes(t.status));
|
|
172
|
+
if (queued.length) {
|
|
173
|
+
lines.push('## Open');
|
|
174
|
+
lines.push('');
|
|
175
|
+
for (const t of queued)
|
|
176
|
+
lines.push(formatTask(t));
|
|
177
|
+
lines.push('');
|
|
178
|
+
}
|
|
179
|
+
if (rest.length) {
|
|
180
|
+
lines.push('## Other');
|
|
181
|
+
lines.push('');
|
|
182
|
+
for (const t of rest)
|
|
183
|
+
lines.push(formatTask(t));
|
|
184
|
+
lines.push('');
|
|
185
|
+
}
|
|
186
|
+
if (done.length) {
|
|
187
|
+
lines.push('<details>');
|
|
188
|
+
lines.push('<summary>Done (' + done.length + ')</summary>');
|
|
189
|
+
lines.push('');
|
|
190
|
+
for (const t of done)
|
|
191
|
+
lines.push(formatTask(t));
|
|
192
|
+
lines.push('');
|
|
193
|
+
lines.push('</details>');
|
|
194
|
+
lines.push('');
|
|
195
|
+
}
|
|
196
|
+
// ─── Output ─────────────────────────────────────────────────────────────────
|
|
197
|
+
const output = lines.join('\n');
|
|
198
|
+
if (doWrite) {
|
|
199
|
+
let root = process.cwd();
|
|
200
|
+
const home = process.env.HOME ?? process.env.USERPROFILE ?? '';
|
|
201
|
+
const candidates = [
|
|
202
|
+
resolve(home, '.beacon-platform', 'projects.yaml'),
|
|
203
|
+
resolve(process.cwd(), 'servers', 'beacon-agent', 'projects.yaml'),
|
|
204
|
+
];
|
|
205
|
+
for (const yamlPath of candidates) {
|
|
206
|
+
if (!existsSync(yamlPath))
|
|
207
|
+
continue;
|
|
208
|
+
const doc = parse(readFileSync(yamlPath, 'utf-8'));
|
|
209
|
+
const entry = doc?.projects?.[project];
|
|
210
|
+
if (entry?.path) {
|
|
211
|
+
root = entry.path;
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
const outPath = resolve(root, 'docs', 'backlog.md');
|
|
216
|
+
const newContent = output + '\n';
|
|
217
|
+
if (existsSync(outPath) && readFileSync(outPath, 'utf-8') === newContent) {
|
|
218
|
+
log.info('skipped (unchanged)', { path: outPath });
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
writeFileSync(outPath, newContent);
|
|
222
|
+
log.info('written', { path: outPath });
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
console.log(output);
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=backlog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../src/cli/backlog.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;AAEtC,+EAA+E;AAE/E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AACpE,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AACpE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACvB,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;AAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;IACX,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,wCAAwC,EAAE,CAAC,CAAA;IAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAkBD,+EAA+E;AAE/E,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,gBAAgB,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;AAE7D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CACpC;;;sBAGkB,EAClB,CAAC,OAAO,CAAC,CACZ,CAAA;AAED,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;AAEhB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;IACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAED,+EAA+E;AAE/E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAErD,SAAS,YAAY,CAAC,IAAY;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;QAC/D,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;QAC/D,OAAO,EAAE,GAAG,EAAE,CAAA;IAClB,CAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAA;QAC7D,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;QAC/D,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;QAC/D,OAAO,EAAE,GAAG,EAAE,CAAA;IAClB,CAAC,CAAC,CAAA;AACN,CAAC;AAED,+EAA+E;AAE/E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAA;AAElD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;IACpB,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QACd,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QAC7E,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;AACL,CAAC;AAED,MAAM,eAAe,GAAG,YAAY,CAChC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC,CACpE,CAAA;AACD,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,CAAA;AAEhG,+EAA+E;AAE/E,SAAS,QAAQ,CAAC,MAAc;IAC5B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACnD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC3B,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAA;QAClC,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACnC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC/B,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,+EAA+E;AAE/E,MAAM,WAAW,GAA2B;IACxC,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,QAAQ;IACrB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,QAAQ;CACtB,CAAA;AAED,MAAM,cAAc,GAA2B;IAC3C,CAAC,EAAE,EAAE;IACL,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,cAAc;IAClB,EAAE,EAAE,cAAc;CACrB,CAAA;AAED,SAAS,UAAU,CAAC,CAAO,EAAE,MAAM,GAAG,EAAE;IACpC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAA;IACzC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACnF,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IACxC,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IACvF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QACvC,CAAC,CAAC,CAAC,CAAC,UAAU;QACd,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;YAChC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAc;YACxC,CAAC,CAAC,EAAE,CAAA;IACV,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpF,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,MAAM,IAAI,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IAC3D,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1B,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1B,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1B,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC;AAED,+EAA+E;AAE/E,SAAS,gBAAgB,CAAC,EAAQ,EAAE,KAAK,GAAG,CAAC;IACzC,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,CAAA;IAC1C,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC7B,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IAE7D,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,UAAU,EAAE,CAAC,CAAA;IAC5E,IAAI,EAAE,CAAC,WAAW;QAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;IACtD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEf,MAAM,QAAQ,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;IAChE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC,CAAA;IAC7E,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC,CAAA;IACvE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAEjC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;QAC1C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACnB,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC;AAED,+EAA+E;AAE/E,MAAM,OAAO,GAAG,cAAc,CAC1B,KAAK,CAAC,MAAM,CACR,CAAC,CAAC,EAAE,EAAE,CACF,CAAC,CAAC,SAAS,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAC5F,CACJ,CAAA;AAED,8EAA8E;AAE9E,MAAM,KAAK,GAAa,EAAE,CAAA;AAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,iBAAiB,CAAC,CAAA;AACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACd,KAAK,CAAC,IAAI,CAAC,gCAAgC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;AACnF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAEd,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACvD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IACzC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAClB,CAAC;AAED,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAA;IACvC,CAAC;AACL,CAAC;AAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAA;AAC1F,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;AACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAE1F,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACrB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACjD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAClB,CAAC;AAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;IACd,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAClB,CAAC;AAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;IACd,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACvB,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,CAAA;IAC3D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAClB,CAAC;AAED,+EAA+E;AAE/E,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAE/B,IAAI,OAAO,EAAE,CAAC;IACV,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAA;IAC9D,MAAM,UAAU,GAAG;QACf,OAAO,CAAC,IAAI,EAAE,kBAAkB,EAAE,eAAe,CAAC;QAClD,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC;KACrE,CAAA;IACD,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAQ;QACnC,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAEhD,CAAA;QACD,MAAM,KAAK,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,KAAK,EAAE,IAAI,EAAE,CAAC;YACd,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;YACjB,MAAK;QACT,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,MAAM,GAAG,IAAI,CAAA;IAChC,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;QACvE,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IACtD,CAAC;SAAM,CAAC;QACJ,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QAClC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAC1C,CAAC;AACL,CAAC;KAAM,CAAC;IACJ,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACvB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* beacon-claude-md-check — @beacon-build/sdk
|
|
4
|
+
*
|
|
5
|
+
* Validates CLAUDE.md auto-triggers against practice files.
|
|
6
|
+
* Checks that every practice doc in docs/constitution/practices/ has a
|
|
7
|
+
* corresponding entry in the CLAUDE.md auto-trigger table.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* beacon-claude-md-check [project-root] # defaults to cwd
|
|
11
|
+
*
|
|
12
|
+
* Exit codes:
|
|
13
|
+
* 0 — all checks passed
|
|
14
|
+
* 1 — gaps found
|
|
15
|
+
* 2 — CLAUDE.md or practices dir not found
|
|
16
|
+
*/
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=claude-md-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-md-check.d.ts","sourceRoot":"","sources":["../../src/cli/claude-md-check.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* beacon-claude-md-check — @beacon-build/sdk
|
|
4
|
+
*
|
|
5
|
+
* Validates CLAUDE.md auto-triggers against practice files.
|
|
6
|
+
* Checks that every practice doc in docs/constitution/practices/ has a
|
|
7
|
+
* corresponding entry in the CLAUDE.md auto-trigger table.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* beacon-claude-md-check [project-root] # defaults to cwd
|
|
11
|
+
*
|
|
12
|
+
* Exit codes:
|
|
13
|
+
* 0 — all checks passed
|
|
14
|
+
* 1 — gaps found
|
|
15
|
+
* 2 — CLAUDE.md or practices dir not found
|
|
16
|
+
*/
|
|
17
|
+
import { existsSync, readdirSync, readFileSync } from 'node:fs';
|
|
18
|
+
import { join } from 'node:path';
|
|
19
|
+
import { createCliLogger } from '../lib/logger.js';
|
|
20
|
+
const log = createCliLogger('claude-md-check');
|
|
21
|
+
const projectRoot = process.argv[2] ?? process.cwd();
|
|
22
|
+
const claudeMd = join(projectRoot, 'CLAUDE.md');
|
|
23
|
+
const practicesDir = join(projectRoot, 'docs', 'constitution', 'practices');
|
|
24
|
+
if (!existsSync(claudeMd)) {
|
|
25
|
+
log.error('CLAUDE.md not found', { path: claudeMd });
|
|
26
|
+
process.exit(2);
|
|
27
|
+
}
|
|
28
|
+
if (!existsSync(practicesDir)) {
|
|
29
|
+
log.error('practices directory not found', { path: practicesDir });
|
|
30
|
+
process.exit(2);
|
|
31
|
+
}
|
|
32
|
+
const practiceFiles = readdirSync(practicesDir)
|
|
33
|
+
.filter((f) => f.endsWith('.md') && f !== 'README.md')
|
|
34
|
+
.map((f) => f.replace('.md', ''));
|
|
35
|
+
const claudeContent = readFileSync(claudeMd, 'utf-8');
|
|
36
|
+
const referencedPractices = new Set();
|
|
37
|
+
const practiceRefPattern = /practices\/([a-z0-9_-]+)\.md/gi;
|
|
38
|
+
let match;
|
|
39
|
+
while ((match = practiceRefPattern.exec(claudeContent)) !== null) {
|
|
40
|
+
referencedPractices.add(match[1]);
|
|
41
|
+
}
|
|
42
|
+
const missing = practiceFiles.filter((p) => !referencedPractices.has(p));
|
|
43
|
+
const stale = [...referencedPractices].filter((p) => !practiceFiles.includes(p));
|
|
44
|
+
let hasErrors = false;
|
|
45
|
+
if (missing.length > 0) {
|
|
46
|
+
log.error('practices missing from CLAUDE.md auto-triggers', { missing });
|
|
47
|
+
hasErrors = true;
|
|
48
|
+
}
|
|
49
|
+
if (stale.length > 0) {
|
|
50
|
+
log.warn('CLAUDE.md references practices that no longer exist', { stale });
|
|
51
|
+
hasErrors = true;
|
|
52
|
+
}
|
|
53
|
+
if (!hasErrors) {
|
|
54
|
+
log.info('all auto-triggers complete', { practices: practiceFiles.length });
|
|
55
|
+
}
|
|
56
|
+
process.exit(hasErrors ? 1 : 0);
|
|
57
|
+
//# sourceMappingURL=claude-md-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-md-check.js","sourceRoot":"","sources":["../../src/cli/claude-md-check.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,GAAG,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAA;AAE9C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;AACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;AAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,CAAC,CAAA;AAE3E,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxB,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAED,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;IAC5B,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;IAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAED,MAAM,aAAa,GAAG,WAAW,CAAC,YAAY,CAAC;KAC1C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC;KACrD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;AAErC,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AAErD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAA;AAC7C,MAAM,kBAAkB,GAAG,gCAAgC,CAAA;AAC3D,IAAI,KAA6B,CAAA;AACjC,OAAO,CAAC,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/D,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACxE,MAAM,KAAK,GAAG,CAAC,GAAG,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAEhF,IAAI,SAAS,GAAG,KAAK,CAAA;AAErB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACrB,GAAG,CAAC,KAAK,CAAC,gDAAgD,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;IACxE,SAAS,GAAG,IAAI,CAAA;AACpB,CAAC;AAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACnB,GAAG,CAAC,IAAI,CAAC,qDAAqD,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAC1E,SAAS,GAAG,IAAI,CAAA;AACpB,CAAC;AAED,IAAI,CAAC,SAAS,EAAE,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAA;AAC/E,CAAC;AAED,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* beacon-context — @beacon-build/sdk (F161)
|
|
4
|
+
*
|
|
5
|
+
* Generates context sections split across two files:
|
|
6
|
+
* AGENTS.md — system-agnostic sections: worker, context, monorepo, code-repo
|
|
7
|
+
* CLAUDE.md — Claude Code-specific: triggers; @AGENTS.md import
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* beacon-context <project> # print to stdout
|
|
11
|
+
* beacon-context <project> --write # write both files
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/cli/context.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG"}
|